#!/usr/bin/env python
# -*- coding: utf-8 -*-

__version__ = "0.2.1"


from grdlog.sqlpipe import SQLFactory, SQLPipe
from twisted.application import internet, service
from twisted.internet import reactor
from os import environ

# Переменные, передаваемые через conf.d
# тут должна быть проверка

db = environ.has_key('DATABASE_NAME') and environ['DATABASE_NAME'] or 'test'
dsn = {"db": db,
       "user": 'django',
       "passwd": '520d3004-67f6-4e60-bef5-462ace77d988'}


# Должен быть объект, накапливающий запросы за некритичное время,
# делающий рудиментарную проверку и посылающий через транзакцию
# серверу mysql. Закрывать соединение нужно, если клиент отвалил.

application = service.Application('sqlpipe', uid=1, gid=1)

try:
    factory = SQLFactory("MySQLdb", **dsn)
except:
    exit
else:
    
    # TCPServer принимает вторым аргументом фабрику,
    # а UDPServer - протокол!
    
    internet.UDPServer(514, SQLPipe(factory)).setServiceParent(
        service.IServiceCollection(application))
